//
//  main.c
//  变量的存储细节
//
//  Created by ws on 2017/7/19.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
 局部变量:在方法内部定义的变量成为局部变量
 %p使用来输出地址的
 变量的作用域:在定义变量的代码块{}内部有效
 变量在没有进行初始化之前,不要拿来使用,因为它里面存储的是一些垃圾数据
 
 计算机中最小的存储单元就是字节(B),就是cpu能识别的就是字节,内存以“字节为单位”

 1.当定义变量的时候首先会分配地址大的字节,
 2.所以先定义的变量的地址大于后定义的变量的地址
 3.变量的地址就是变量所占的存储中最小的地址
 4.高位在高字节上,低位在低字节上

注意点:从前到后定义的变量的地址不一定是连在一起的,但是一个变量中的地址肯定是连在一起的
 
 */
int main(int argc, const char * argv[]) {
    int a =  10;//0000 0000 0000 0000 0000 0000 0000 1010
    int b = 2;//0000 0000 0000 0000 0000 0000 0000 0010
    printf("%p\n",&a);//取出变量的地址 0x7fff5fbff70c
    printf("%p\n",&b);//取出变量的地址 0x7fff5fbff708
//    char *p = &a;
//    printf("%p -- %d\n",p, *p);
//     printf("%p -- %d\n",p + 1, *(p + 1));
//     printf("%p -- %d\n",p + 2, *(p + 2));
//     printf("%p -- %d\n",p + 3, *(p + 3));
    
    char c = 'a';
    printf("%p\n",&c);//0x7fff5fbff707
    return 0;
}
